package com.example.hw_demo.controller;

import com.example.hw_demo.util.Result;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

@RestController
@RequestMapping("/file")
public class FileController {
    @Value("${upload.filePath}")//取文件的路径
    private String filePath;
    /*上传接口*/
    @PostMapping("/updata")
    public Result updata(@RequestParam("file")MultipartFile file){//去接文和图片的参数
        //判断文件上传是都为空
        if(filePath.isEmpty()){
            return new Result(500,"请上传图片",null);
        }
        // 获取文件名
        String fileName = file.getOriginalFilename();
        // 获取文件扩展名.jsp
        String fileExtension = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
        // 重新生成的文件名  System.currentTimeMillis()获取当前时间的毫秒值
        String saveFileName = System.currentTimeMillis() + fileExtension;
        File directory=new File(filePath);//创建一个保存文件夹对象 在E盘下面创建一个
        //判断是否是文件夹
        if(directory.exists()){
            directory.mkdir();//创建文件夹
        }
        //存放图片
        File targetFile = new File(directory, saveFileName);
        //将数据保存到该targetFile文件中
        try {
            file.transferTo(targetFile);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return  new Result(200,"上传成功,返回图片地址","/images/"+saveFileName);
    }

}